Learn Go 是在codecademy上的Go語言基礎課程,這週的主要內容在學習function的寫法,以及指標參數
Learn Go in 12 Minutes,這一個影片可以用來檢視對Go語言的基礎認識
學習筆記Go
五、Go Functions
- func myFunciont(參1, 參2 參數類型) (回傳類型1, 回傳類型2 ){}, (Go函式定義方式)
- 需要注意作用域,分為全域變數與區域變數
- parameters(可以多個輸入與多個回傳)()
- defer keyword. 在函式結束時執行。由於函式結束有多種方式,因此這樣寫可以確保在函式最後執行,This is useful for logging, file writing, and other utilities.
- Go is a pass-by-value language.(一般變數在函式中是複製一個值進行運算,不過指標變數由於存取地址,可以直接改原本的值。相較於Pass by reference)
- An address is where a value is stored. (記憶體地址以十六進位表示)
- use the & operator to find an address of a variable(取址)
- Pointers are variables that store an address.
- A pointer is specific to what type of address it can store.(指標不能指給不同類型的值,宣告*int時,就只能指派int值給它)
- The * operator can be used to assign a pointer the type of the value its address holds.
- The * operator can also be used to dereference a pointer and assign a new value.
練習題目:
題目一:
已知感測器資料儲存方式為字串,每個char代表一個感測數值
sensor ="000000000000000000000000000000"
已知有一個int陣列 [1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3]
請寫一個function 輸入int陳列回傳相對應的sensor字串
//陣列轉換為字串
//輸入[1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3,1,2,3]
//輸出"123123123123123123123123123123"
func parseeIntArrayToSensorStr(data int[30]) string{}
題目二:
不同於第一題,設計一個function,傳入指標
function應只回傳error,
在function內需要修改sensor的字串,
將其中所有偶數變為0
//"123123123123123123123123123123"
//執行function 後print out:
//"103103103103103103103103103103"
func changeOriginStr(str *string) error {
}